Embedded graphics core
embedded-graphics-core contains the core components of embedded-graphics that are required to add embedded-graphics support to display drivers, image libraries, text renderers and other third party crates.
This crate should only be used by crates that extend embedded-graphics. Applications should instead depend on embedded-graphics itself.
Like any other crate, embedded-graphics-core will change over time, however it will change at a much slower rate than embedded-graphics itself, and will likely release fewer breaking changes. This will provide more stability and compatability for the weider embedded-graphics ecosystem, whilst allowing non-core features of embedded-graphics to evolve at a faster pace. The same version of embedded-graphics-core may be used for multiple major versions of embedded-graphics.
Core functionality
DrawTarget
- By implementing a draw target for a display driver, all embedded-graphics drawables can be drawn to that display.Drawable
- This trait can be implemented to make an object drawable to anyDrawTarget
. Examples include shapes, text, UI elements, etc.ImageDrawable
- Color types - see below.
- Geometry -
Point
,Size
andRectangle
provide ways of defining positions, dimensions and rectangular areas respectively.
Colors
The pixelcolor
module provides various standard color types, from BinaryColor
to
Rgb888
. See the pixelcolor
module documentation for the complete list of color depths
and formats available.
Display drivers
See the DrawTarget
documentation for examples on how to integrate embedded-graphics with a
display driver using the DrawTarget
trait.
Images
The ImageDrawable
trait should be implemented for any image or image-like item, for example
a spritemap.
Minimum supported Rust version
The minimum supported Rust version for embedded-graphics-core is 1.40.0
or greater.
Ensure you have the correct version of Rust installed, preferably through https://rustup.rs.
Development setup
Please see the development setup guide.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.